package com.example.bilibili_fake.data.model

import com.google.gson.annotations.SerializedName

data class VideoResponse(
    val code: Int,
    val message: String,
    val ttl: Int,
    val data: VideoData
)

data class VideoData(
    val page: Page,
    val archives: List<Archive>
)

data class Page(
    val num: Int,
    val size: Int,
    val count: Int
)

data class Archive(
    val aid: Long,
    val videos: Int,
    val tid: Int,
    val tname: String,
    val copyright: Int,
    val pic: String,
    val title: String,
    val pubdate: Long,
    val ctime: Long,
    val desc: String,
    val state: Int,
    val duration: Int,
    val rights: Rights,
    val owner: Owner,
    val stat: Stat,
    val dynamic: String,
    val cid: Long,
    val dimension: Dimension,
    @SerializedName("season_id") val seasonId: Int,
    @SerializedName("short_link_v2") val shortLinkV2: String,
    @SerializedName("first_frame") val firstFrame: String,
    @SerializedName("pub_location") val pubLocation: String,
    @SerializedName("cover43") val cover43: String,
    @SerializedName("tidv2") val tidV2: Int,
    @SerializedName("tnamev2") val tnameV2: String,
    @SerializedName("pid_v2") val pidV2: Int,
    @SerializedName("pid_name_v2") val pidNameV2: String,
    val bvid: String,
    @SerializedName("season_type") val seasonType: Int,
    @SerializedName("is_ogv") val isOgv: Boolean,
    @SerializedName("ogv_info") val ogvInfo: Any?,
    @SerializedName("rcmd_reason") val rcmdReason: String,
    @SerializedName("enable_vt") val enableVt: Int,
    @SerializedName("ai_rcmd") val aiRcmd: Any?
)

data class Rights(
    val bp: Int,
    val elec: Int,
    val download: Int,
    val movie: Int,
    val pay: Int,
    val hd5: Int,
    @SerializedName("no_reprint") val noReprint: Int,
    val autoplay: Int,
    @SerializedName("ugc_pay") val ugcPay: Int,
    @SerializedName("is_cooperation") val isCooperation: Int,
    @SerializedName("ugc_pay_preview") val ugcPayPreview: Int,
    @SerializedName("no_background") val noBackground: Int,
    @SerializedName("arc_pay") val arcPay: Int,
    @SerializedName("pay_free_watch") val payFreeWatch: Int
)

data class Owner(
    val mid: Long,
    val name: String,
    val face: String
)

data class Stat(
    val aid: Long,
    val view: Int,
    val danmaku: Int,
    val reply: Int,
    val favorite: Int,
    val coin: Int,
    val share: Int,
    @SerializedName("now_rank") val nowRank: Int,
    @SerializedName("his_rank") val hisRank: Int,
    val like: Int,
    val dislike: Int,
    val vt: Int,
    val vv: Int,
    @SerializedName("fav_g") val favG: Int,
    @SerializedName("like_g") val likeG: Int
)

data class Dimension(
    val width: Int,
    val height: Int,
    val rotate: Int
)